// figuras.h: interface for the figuras class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_FIGURAS_H__1E4008BF_11A9_4354_94AB_77F566261316__INCLUDED_)
#define AFX_FIGURAS_H__1E4008BF_11A9_4354_94AB_77F566261316__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <GL\glut.h> 
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <vector>
#include <iostream.h>

#define max 3000
#define menosinfinito -99999
#define masinfinito 99999

using namespace std;

typedef struct {
	double posX;
	double posY;
} tPunto;

class figuras  
{
private:
	 int maxx[max];
	 int minx[max];
	 int x0, y0, x1, y1;
	 int dx, dy, e, ix, iy;
	 
	 float radio;

	 vector <tPunto> aPuntos;
		
public:
	figuras();
	virtual ~figuras();
	
	void bhmRecta1_7();
	void bhmRecta3_5();
	void bhmRecta(int x0, int y0, int x1, int y1);

	void swapPuntos();
	
	void bhmScanLine1_7();
	void bhmScanLine3_5();
	void bhmScanLine(int x0, int y0, int x1, int y1);    
	void bhmScanLineInit();	
	void bhmScanLineRellenar();

	void bhmCirculo(float r, int x0, int y0);
	void bhmCirculoRellenar();
	
	void insertarPunto(int x, int y);
	void quitarPunto();
	void clearPuntos();
	void bhmPoligono();
	void bhmPoligonoRellenar();
};

#endif // !defined(AFX_FIGURAS_H__1E4008BF_11A9_4354_94AB_77F566261316__INCLUDED_)
